<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateArticleTagTable extends Migration
{
    /**
     * Run the migrations.
     * 创建文章-标签关联表，支持文章与标签的多对多关系。
     */
    public function up()
    {
        Schema::create('article_tag', function (Blueprint $table) {
            $table->id(); // 主键，自增ID
            $table->foreignId('article_id')->constrained()->onDelete('cascade'); // 外键，关联文章表
            $table->foreignId('tag_id')->constrained()->onDelete('restrict'); // 外键，关联标签表
            $table->unique(['article_id', 'tag_id']); // 联合唯一索引，防止重复关联
        });
    }

    /**
     * Reverse the migrations.
     * 删除文章-标签关联表。
     */
    public function down()
    {
        Schema::dropIfExists('article_tag');
    }
}